In NAND flash memory, cells are organized by word-lines and bit-lines into blocks. A block can have about 100,000 cells. Cells can be programmed as single-level cells (SLCs, one-bit per cell) or multi-level cells (MLCs, at least two-bit per cell), such as triple-level cells (TLCs, three-bit per cell). An SLC has one level in order to store memory; whereas, an MLC has multiple cell levels in order to store more memory. As the number of levels in a cell increases, a finer threshold voltage is needed for programming and read-back; this finer threshold voltage makes MLCs prone to noise.
Given an SLC cell as example, the threshold voltage determines whether a read-back voltage from an NAND cell is a 0 or 1. For example, if the read-back voltage is less than the threshold voltage, the cell will be read as having a value of 1; if the read-back voltage is greater than the threshold voltage, the cell will be read as having a value of 0. Over time and temperature changes, the average read-back voltages associated with a cell can drift such that the actual threshold voltage will drift away from the initial threshold voltage. This drift of the threshold voltage level is referred to as the aging effect (and is also known as retention). The aging effect is caused by the leakage of electrons from the cell. Because the aging effect causes the actual threshold voltage to drift away from the initial threshold voltage, a value of a cell can be read incorrectly. For example, a read-back voltage can be less than the initial threshold voltage but above the actual threshold voltage such that the cell is incorrectly read as a 0 based upon the initial threshold voltage, when in fact the cell should be read as a 1 because the actual threshold voltage has drifted.
Therefore, it can be desirable to provide a method, system, and apparatus which address fine threshold voltages, the aging effect, and the above-referenced problems.